package com.learn.english.domain;

import lombok.*;

/**
 * @author TISNIW
 * @version 1.0
 * @date 2024/7/1 16:40
 * @desc 统一封装分页查询参数
 */
@Getter
@Setter
public class PageQueryDTO {
    // 全局常量
    public static final int DEFAULT_PAGE_SIZE = 10; // 默认分页大小
    public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; // 日期格式

    // 分页参数
    private Integer pageNum = 1; // 页码
    private Integer pageSize = DEFAULT_PAGE_SIZE; // 每页数量
    
    // 搜索条件
    private String keyword; // 关键字搜索
    private String uid; // 用户ID
    private String username; // 用户名
    private String department; // 部门
    private Byte status; // 状态
    private String role; // 角色
    
    // 日期范围
    private String startTime; // 开始时间
    private String endTime; // 结束时间
    
    // 排序相关
    private String sortField; // 排序字段
    private String sortOrder; // 排序方式（asc/desc）
    
    /**
     * 获取分页偏移量
     */
    public int getOffset() {
        return (this.pageNum - 1) * this.pageSize;
    }
}
